package com.thread;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * @ClassName Demo3
 * @Description 创建线程3
 * @Author 2214361854
 * @Date 2022/3/2 14:49
 * @Version 1.0
 */
public class Demo3 {
//    public static void main(String[] args) {
//        Callable<String> call1 = new MyCallable(100);
//        FutureTask<String> fut1 = new FutureTask<>(call1);
//        Thread tr1 = new Thread(fut1,"线程1");
//        tr1.start();
//
//
//        FutureTask<String> fut2 = new FutureTask<>(new MyCallable(200));
//        Thread tr2 = new Thread(fut2,"线程2");
//        tr2.start();
//
//        try {
//            System.out.println(tr1.getName()+":"+fut1.get());
//            System.out.println(tr2.getName()+":"+fut2.get());
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
}

/**
 * 实现Callable接口
 */
//class MyCallable implements Callable<String>{
//    private int n;
//
//    public MyCallable(int n) {
//        this.n = n;
//    }
//
//    /**
//     * 重写call
//     * @return
//     * @throws Exception
//     */
//    @Override
//    public String call() throws Exception {
//        int sum = 0;
//        for (int i = 0; i < n; i++) {
//            sum+=i;
//        }
//        return "子线程结果："+sum;
//    }
//}